<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
</head>

<body>

<script>
  // 1、查出当前用户信息
  // 2、按照当前用户的id查出他的课程
  // 3、按照当前课程id查出分数
  // $.ajax({
  //     url: "mock/user.json",
  //     success(data) {
  //         console.log("查询用户：", data);
  //         $.ajax({
  //             url: `mock/user_corse_${data.id}.json`,
  //             success(data) {
  //                 console.log("查询到课程：", data);
  //                 $.ajax({
  //                     url: `mock/corse_score_${data.id}.json`,
  //                     success(data) {
  //                         console.log("查询到分数：", data);
  //                     },
  //                     error(error) {
  //                         console.log("出现异常了：" + error);
  //                     }
  //                 });
  //             },
  //             error(error) {
  //                 console.log("出现异常了：" + error);
  //             }
  //         });
  //     },
  //     error(error) {
  //         console.log("出现异常了：" + error);
  //     }
  // });
  //
  //
  // // 1、Promise可以封装异步操作
  // let p = new Promise((resolve, reject) => {
  //     //1、异步操作
  //     $.ajax({
  //         url: "mock/user.json",
  //         success: function (data) {
  //             console.log("查询用户成功:", data)
  //             resolve(data);
  //         },
  //         error: function (err) {
  //             reject(err);
  //         }
  //     });
  // });
  //
  // p.then((obj) => {
  //     return new Promise((resolve, reject) => {
  //         $.ajax({
  //             url: `mock/user_corse_${obj.id}.json`,
  //             success: function (data) {
  //                 console.log("查询用户课程成功:", data)
  //                 resolve(data);
  //             },
  //             error: function (err) {
  //                 reject(err)
  //             }
  //         });
  //     })
  // }).then((data) => {
  //     console.log("上一步的结果", data)
  //     $.ajax({
  //         url: `mock/corse_score_${data.id}.json`,
  //         success: function (data) {
  //             console.log("查询课程得分成功:", data)
  //         },
  //         error: function (err) {
  //         }
  //     });
  // })

  // let p = new Promise((resolve,reject)=>{
  //   // 1.异步操作
  //   $.ajax({
  //     url:"mock/user.json",
  //     success:function (data) {
  //       console.log("查询用户成功:"+data)
  //       resolve(data)
  //     },
  //     error:function (err){
  //       reject(err)
  //     }
  //   })
  // })
  //
  // p.then((obj)=>{
  //   return new Promise((resolve,reject)=>{
  //     $.ajax({
  //       url:`mock/user_corse_${obj.id}.json`,
  //       success:function (data) {
  //         console.log("查询课程成功:"+data)
  //         resolve(data)
  //       },
  //       error:function (err){
  //         reject(err)
  //       }
  //     })
  //   })
  // }).then(data=>{
  //   console.log("上一步的结果:"+data)
  //   $.ajax({
  //     url:`mock/corse_score_${data.id}.json`,
  //     success:function (data) {
  //       console.log("查询课程得分成功:"+data)
  //     },
  //     error:function (err){
  //     }
  //   })
  // })

  function get(url,data) {
    return new Promise((resolve,reject)=>{
      $.ajax({
        url:url,
        data:data,
        success:function (data) {
          resolve(data)
        },
        error:function (err) {
          reject(err)
        }
      })
    })
  }

  get("mock/user.json")
          .then((data)=>{
            console.log("用户查询成功:"+data)
            return get(`mock/user_corse_${data.id}.json`)
          })
          .then((data)=>{
            console.log("课程查询成功:"+data)
            return get(`mock/corse_score_${data.id}.json`)
          })
          .then((data)=>{
            console.log("课程成绩查询成功:"+data)
          })
          .catch((err)=>{
            console.log("出现异常",err)
          })
</script>
</body>

</html>